zix http1 entry - #998
Conversation
|
Testing new approach and database tests entries for H1. |
|
/benchmark -f zix |
|
👋 |
Benchmark ResultsFramework:
Full log |
|
Oh my, didn't expect the cpu burn that much with high memory consumption. |
Benchmark ResultsFramework:
Full log |
This branch saved results before MDA2AV#1034, so it carries 20 site/data/<profile>-<conns>.json files that main has since replaced with one file per framework; git reported them all as modify/delete conflicts. Every row this PR added or changed against its merge base was re-applied to site/data/results/zix.json and the flat files dropped - 8 profiles this entry did not publish before (api-4, api-16, async-db, crud, json-comp at three connection counts, json-tls) and 12 it updated (baseline, limited-conn, pipelined, json, static, upload). Two keys already in main were left alone, because this PR did not touch them.
|
/benchmark -f zix --save |
|
👋 |
Benchmark ResultsFramework:
Full log |
|
Ready to review before merge, @MDA2AV |
Beem kinda busy, I'll do a full review tommorow, need some time to do it properly |
Sure. Hope you doin well. Regards. |
|
Ok, I reviewed again. Some things improved but some issues remain. On the upload test, I must say your AI agent really went all in on this test.. technically following the rules but doing something no server would ever do. You count the bytes received but discard them and never read into zix's memory.. it is expected that a server reads the request data to its memory. As this is an engine and test is not scored, we can allow this but keep in mind this would never work on a production server. On json tests, you need to serialize per request, not caching the serialized data at startup and then serve it. This one is important as json-tls is a scored test. There are a lot other things zix is doing that are clearly benchmark oriented and would be a very big problem in a production use, however this is engine section so I won't pick on that but if you are planning on using it as an engine for a real server, there are quite a lot of issues. On CRUD, the ttl seems to be addressed. Regardless, it is an interesting project to push benchmark numbers! :) |
|
Yes, zix.Http1 intent really rely on user implementation and promote for user control. I knew it's engine category, but engine correctness is considerable aspect (despite some zix engine/s features). Converting to draft. Thank you. |
… propagation - Migrate JSON parsing and serialization across `json`, `crud`, and `dataset` modules to use `jzon`, eliminating manual string building and `std.json` overhead. - Remove response memoization and startup pre-serialization. The `json` handler now serializes per request, and `crudcache` strictly operates as a row-level cache-aside (holding decoded DB rows, not rendered HTTP responses) to accurately reflect benchmark profile constraints. - Replace the custom `static` handler with the engine's native `public_dir` configuration. - Enforce strict error propagation by converting handlers and shared responders (`response.zig`) to return `!void`, replacing silent error swallowing with `try`. - Centralize byte-buffer formatting utilities (integers, strings, JSON escaping) into `shared/util.zig`. - Refactor `dbpg` to use a shared `CrudWrite` payload for create/update jobs and improve lane arming logic for `.URING` vs `.EPOLL`/`.ASYNC` models. - Add comprehensive module-level documentation explaining design choices, benchmark constraints, and engine interactions. - Update `Dockerfile` to target Zix `0.5.x` and change Zig build summary to `failures`. - Add `static-tls` to the `meta.json` test matrix.
|
Bump zix branch to 0.5.x and follow-up #1121 (comment) |
|
/benchmark -f zix |
|
👋 Benchmark request received. A collaborator will review and approve the run. |
Benchmark ResultsFramework:
Full log |
Description
zix entry for http1 using 0.5.x branch.
Update:
Checklist:
/benchmark -f zix/benchmark -f zix --save